home *** CD-ROM | disk | FTP | other *** search
/ Informática Multimedia 1995 April / Informatica Multimedia CD - Epimundo.iso / DOS / FILE_CHG / FASTSORT.ZIP / FSORT.DOC < prev    next >
Encoding:
Text File  |  1991-05-26  |  45.0 KB  |  1,228 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                                F A S T   S O R T  1.60
  22.  
  23.  
  24.                    OPERATOR'S HANDBOOK AND PROGRAMMER'S GUIDE
  25.  
  26.  
  27.                            Version 1.60  -  May 1990
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                             copyright (c) 1989, 1990
  39.  
  40.                                   DC Software
  41.                                 6705 Laramie Dr.
  42.                                Plano, Texas 75023
  43. FastSort - Version 1.60 - General Purpose File Sorting and Handling Utility
  44.  
  45.  
  46.  
  47.     The SHARE-WARE Licence Agreement
  48.     --------------------------------
  49.  
  50.     Copyright (c) 1988, 1989, 1990 by David A. Hernandez, DBA DC Software          
  51.  
  52.     You are free to use, copy and distribute this product provided:
  53.  
  54.     -  NO FEE IS CHARGED FOR IT. (See Note Below)
  55.  
  56.     -  IT IS DISTRIBUTED COMPLETE IN IT'S ORIGINAL FORM WITH ALL THE
  57.        ORIGINAL FILES.  SEE BELOW FOR COMPLETE LIST OF FILES.
  58.  
  59.     -  IT IS NOT MODIFIED IN ANY WAY.
  60.  
  61.     Distributors of Public Domain and Share Ware Software, Clubs, User Groups
  62.     and others, my charge a fee (Maximum $10) for shiping, handling and other
  63.     expenses.
  64.  
  65.     This program is provided AS IS without any warranty, expressed or
  66.     implied, including, but not limited to, fitness for a particular
  67.     purpose.
  68.  
  69.     If you find this program useful, and continue to use it beyond a short
  70.     trial period (about 1 month), you should send a registration fee of $25
  71.     the address below, in effect buying the product.  Upon receipt of the 
  72.     registration fee, you will be sent the latest copy of the software, and
  73.     will be entitled to free technical support by phone or mail.  If you have
  74.     any problems with the software, it will be addressed promptly.
  75.    
  76.     Suggestions for enhancements and/or bug reports are welcome.  The first
  77.     registered user to report a bug will get a free update when it is fixed.
  78.  
  79.     Unlimited use within a single physical building (Site License) is $100.  
  80.  
  81.     Corporate Licenses available.  Please write.
  82.  
  83.     The FASTSORT.EXE archived program contains the following files:
  84.  
  85.         FSORT.EXE       The FASTSORT program.
  86.         FSORT.DOC       - The FASTSORT documentation.
  87.         FSORT.LIC       - The FASTSORT License Agreement. (This Page)
  88.         FSORT.FRM       - The FASTSORT registration form.
  89.         FSORT.LST       - List of bugs and enhancements up to this version.
  90.         EZSORT.EXE      The FASTSORT easy to use, full screen interface.
  91.         EZSORT.HLP      - A simple help file for the EZSORT interface. 
  92.         DBINFO.EXE      A utility to display DBASE-III file headers.
  93.  
  94.     Enjoy.
  95.  
  96.     DC Software
  97.     6705 Laramie Dr.
  98.     Plano, TX 75023
  99. FASTSORT - General Purpose File Sorting and Handling Utility            Page  1
  100.  
  101.  
  102.  
  103.  
  104.                             Table of Contents
  105.                             -----------------
  106.  
  107.  
  108.  
  109.     Topic                                                 Page
  110.     -----                                                 ----
  111.  
  112.       Table of Contents ..................................  1
  113.  
  114.       General Information ................................  2
  115.  
  116.       Notation, Running FASTSORT .........................  3
  117.  
  118.       Quick Reference Card ...............................  4
  119.  
  120.       Full Command Reference .............................  5
  121.  
  122.       Files and Records ..................................  8
  123.  
  124.       SuperSort(tm) Compatibility ........................  9
  125.  
  126.       Fields and Key Types................................ 10
  127.  
  128.       Output File Options ................................ 12
  129.  
  130.       Key Transformations ................................ 15
  131.  
  132.       Examples and Tips .................................. 17
  133.  
  134.       What the future holds .............................. 19
  135.  
  136.       The EZSORT interface ............................... 20
  137.  
  138.       Registration Forms ................................. 21
  139.  
  140. FASTSORT - General Purpose File Sorting and Handling Utility            Page  2
  141.  
  142.  
  143.  
  144.     General Information
  145.     -------------------
  146.  
  147.       * FASTSORT will run on any IBM PC or compatible running PC/MS-DOS 2.0
  148.         or higher with as little as 100K of free RAM.
  149.  
  150.       * FASTSORT will use all available memory to maximize sorting speed and
  151.         never requires (but may use) more than 6 free DOS file handles.
  152.  
  153.       * The main FASTSORT interface is called FSORT and is modeled after the
  154.         Super Sort(tm) program marketed by Micro Pro International in the late
  155.         1970's and early 1980's.   While no longer available (to my knowledge)
  156.         it was at one time the ONE AND ONLY SORT, as many of you may recall.
  157.         Some degree of compatibility with Super Sort has been built into this
  158.         product, but full compatibility was never a goal.
  159.  
  160.       * Trade Marks
  161.  
  162.         - IBM-PC is a registered trademark of International Business Machines.
  163.         - MS-DOS is a registered trademark of Microsoft Inc.
  164.         - dBASE III is a registered trademark of Ashton-Tate.
  165.         - Super Sort is a registered trademark of Micro Pro International
  166.         - FASTSORT is a trademark of DC Software
  167.  
  168.  
  169.     Features and Overview
  170.     ---------------------
  171.  
  172.       * Sort up to 32 input files into a single output file.  Files can have
  173.         fixed or variable length records, carriage return delimited records,
  174.         or even be relative (COBOL) files.  Special files like .DBF (dBASE)
  175.         can be easily sorted.
  176.  
  177.       * Up to 32 sort fields may be specified.  Sort fields ASCENDING or
  178.         DESCENDING, use special collating sequences like EBCDIC, UPPER-CASE,
  179.         LEXICAL, or create your own.  Sort normal text, binary fields, BCD,
  180.         fixed point, floating point (single or double precision), LO-HI and
  181.         many more.
  182.  
  183.       * Up to 32 SELECT/EXCLUDE commands using all field types. 
  184.  
  185.       * Up to 64 WRITE fields including PADing.
  186.  
  187.       * Specify ranges of records to be included from each input file.
  188.  
  189.       * Convert among file types, cr-delimited to fixed length, DBASE III to
  190.         relative, etc.
  191.  
  192.       * Generate special files containing sorted KEYS, record numbers,
  193.         selected fields or even byte offsets into the original file.  Create
  194.         index files that can be binary-searched for quick access into BIG
  195.         data bases.
  196.  
  197.       * Put commands in a text file, to be executed at any time.
  198.  
  199.       * Easy to use EZSORT interface generates command files interactively.
  200.  
  201.       * There's much more to FASTSORT than sorting.
  202. FASTSORT - General Purpose File Sorting and Handling Utility            Page  3
  203.  
  204.  
  205.  
  206.  
  207.     Notation
  208.     --------
  209.  
  210.        UPPER-CASE    Upper case KEYWORDs should be typed as shown.  You can 
  211.                      abbreviate keywords by in most cases to the first two 
  212.                      letters except as noted in the documentation.
  213.  
  214.        lower-case    This is information that must be supplied by the user.
  215.                      Filenames, record sizes, etc.
  216.  
  217.        [  ]          The text enclosed in brackets is optional.
  218.  
  219.        x|y|z         Alternatives to choose from.  [x|y|z] would indicate
  220.                      that you MAY choose one, but you don't have too.
  221.  
  222.        [, ...]       The previous parameter may be repeated more than once.
  223.  
  224.        [=|+]         Some commands may be issued several times.  An "=" sign
  225.                      will reset the values and start over again, a "+" sign
  226.                      will add the new values to the ones previously entered.
  227.  
  228.        *             An asterisk preceding a command in the reference indicates
  229.                      that the command is REQUIRED.
  230.  
  231.        &             You may use an AMPERSAND at the end of a line to 
  232.                      indicate that the command continues on the next line.
  233.                      You may use up to 255 characters for each command.
  234.  
  235.        constants     A constant is a number (sequence of digits) or a string
  236.                      (enclosed in single or double quotes).  You may add the
  237.                      qualifier H after a string to indicate that it is a HEX
  238.                      string (i.e. characters 0-9 and A-F only), which is then
  239.                      stored internally in binary (two digits to a byte).
  240.  
  241.     Running FASTSORT
  242.     ----------------
  243.  
  244.     FASTSORT can receive instructions as command line arguments, from one
  245.     or more command files and through interactive user input.
  246.  
  247.     To invoke FASTSORT type:
  248.  
  249.        FSORT <Enter>                                  or
  250.        FSORT [CF=commandfile] <Enter>                 or
  251.        FSORT [command;command;command..] <Enter>
  252.  
  253.     If no GO command is encountered (either in the command file or in the
  254.     arguments), FASTSORT will automatically go into interactive mode.
  255.  
  256.     Or, you can use the new EZSORT interface, and let it create your command
  257.     files for you!
  258.  
  259. FASTSORT - General Purpose File Sorting and Handling Utility            Page  4
  260.  
  261.  
  262.  
  263.     Quick Reference Card
  264.     --------------------
  265.  
  266.       CANCEL
  267.  
  268.       CFILE [=] filespec
  269.  
  270.       COLLATING-SEQUENCE [=|+] new-sequence [, ...]
  271.  
  272.       FOOTER [=] 'left string/center string/right string'
  273.  
  274.     * GO | BYE
  275.  
  276.       HEADER [=] header-size [RETAIN]
  277.  
  278.     * INPUT-ATTRIBUTES [=] max-record-size[,] file-type
  279.  
  280.       -  FIXED, RELATIVE, VARIABLE, CR-DELIMITED, DBASEIII
  281.  
  282.     * KEY [=|+] start-col, end-col, [key-order], [key-type] ...
  283.  
  284.       - ASCENDING, DESCENDING
  285.  
  286.       - UPPER-CASE, LEXICAL-ORDER, EBCDIC, ALTSEQ, NUMERIC-ASCII, LO-HI
  287.         PACKED-BCD, FLOATING-POINT, MSBIN-FLOAT, INTEGER, TWOS-COMPLEMENT,
  288.         ZERO-DELIMITED, PASCAL-STRING, COMPUTATIONAL, COMPUTATIONAL-3,
  289.         RIGHT-JUSTIFY,  MASK-PARITY-BIT.
  290.  
  291.       LIST-COMMANDS
  292.  
  293.     * OUTPUT-FILE [=] filespec [out-rec-size] [file-type] [out-data-type]
  294.  
  295.       -  FIXED, RELATIVE, VARIABLE, CR-DELIMITED, DBASEIII
  296.  
  297.       -  K-OUTPUT, L-OUTPUT, O-OUTPUT, R-OUTPUT, R2-OUTPUT, P-OUTPUT,
  298.          KL-OUTPUT, KO-OUTPUT, KR-OUTPUT, KR2-OUTPUT, KP-OUTPUT.
  299.  
  300.       PAGE-SIZE [=] line-count
  301.  
  302.     * READ-FILES [=|+] filespec[(from-record, to-record)] [, filespec...]
  303.  
  304.       RETURN-TO-CONSOLE
  305.  
  306.       PRINT-LEVEL [=] print-level
  307.  
  308.       [SELECT|EXCLUDE] [=|+] expression [AND|OR expression]
  309.  
  310.     * SORT-FILES [=|+] filespec[(from-record, to-record)] [, filespec...]
  311.  
  312.       STABLE [OFF|ON]
  313.  
  314.       TITLE [=|+] 'left string/center string/right string'
  315.  
  316.       UNIQUE [OFF|ON]
  317.  
  318.       WRITE-FILE [=|+] [FIELD start-col, end-col | PAD [length] [char]]
  319. FASTSORT - General Purpose File Sorting and Handling Utility            Page  5
  320.  
  321.  
  322.  
  323.     Full Command Reference
  324.     ----------------------
  325.  
  326.       BYE
  327.       -
  328.         Exit FASTSORT.  Don't process pending commands.
  329.  
  330.       CANCEL
  331.       --
  332.         Clear all commands.  (Does not clear COLLATING-SEQUENCE).
  333.  
  334.       CFILE [=] filespec
  335.       --
  336.         Read commands from command file.
  337.  
  338.       COLLATING-SEQUENCE [=|+] char [- char] [= pos [+|-]], ...
  339.       --
  340.         Sets character collating sequence.  For any character or range of
  341.         characters, you specify an order relative to the other chars.
  342.   
  343.         Example: Sort numerics first in reverse order, then lower case alpha
  344.         in ascending order, then upper case in no specific order (weird, but
  345.         it makes a point.  All other chars are sorder normally.
  346.  
  347.            COL = '9'-'0', 'a'-'z', 'A'-'Z'=37
  348.  
  349.         Example: Sort everything in reverse:
  350.  
  351.            COL = 255-0      or    COL = 0-255=255-
  352.  
  353.       FOOTER [=] 'left string/center string/right string'
  354.       -
  355.         A single line of text at the end of each page. [WRITE-FILE only].  The
  356.         left, center and right strings will be justified (with a maximum width
  357.         of 255 characters on a line.  You may also include %ppp.. to indicate
  358.         a page number (the number of Ps (+1 for the %) gives the size of the 
  359.         field), and %m (month 01-12), %mm (month Jan,Feb..), %y (year 01-99),
  360.         and %d (day 01-31).
  361.         
  362.     * GO
  363.       -
  364.         Process currently defined commands.  See RETURN-TO-CONSOLE.
  365.  
  366.       HEADER [=] header-size [RETAIN]
  367.       -
  368.         Indicates that the input file has a header with non-record information
  369.         of 'header-size' bytes.  The RETAIN option indicates that the header
  370.         should be copied to the output file.  Only the header for the first 
  371.         input file will be copied into the output file.  DBASE headers will
  372.         be handled automatically if the input type is DBASEIII. 
  373.  
  374.     * INPUT-ATTRIBUTES [=] max-recsize[,] file-type
  375.       -
  376.         Input files will have records not exceeding 'max-recsize' bytes.  The
  377.         maximum size is 64K.  Also, indicates the 'file-type' which may be
  378.         FIXED, RELATIVE, VARIABLE, CR-DELIMITED or DBASEIII.
  379.  
  380. FASTSORT - General Purpose File Sorting and Handling Utility            Page  6
  381.  
  382.  
  383.  
  384.     Full Command Reference (continued)
  385.     ----------------------------------
  386.  
  387.     * KEY [=|+] start-col, end-col [ASC|DESC] [key-type [qualif]], ...
  388.  
  389.         Up to 32 keys.  The key-type is one of the following:
  390.  
  391.          - no key-type         ASCII collating sequence.
  392.          - UPPER-CASE          Ignore upper/lower diff.
  393.          - LEXICAL-ORDER       AaBbCcDd..
  394.          - EBCDIC              EBCDIC collating sequence.
  395.          - ALTSEQ              Use user's COLLATING-SEQUENCE
  396.          - NUMERIC-ASCII       Free format ASCII number.
  397.          - PACKED-BCD          Binary Coded Decimal.
  398.          - FLOATING-POINT      IEEE format floating point.
  399.          - MSBIN-FLOAT         MS format floating point.
  400.          - LO-HI               Compare bytes in reverse.
  401.          - TWOS-COMPLEMENT     HI-LO, multi-byte, integer.
  402.          - INTEGER             Same as LO-HI + TWOS-COMPLEMENT
  403.          - ZERO-DELIMITED      C-type string.
  404.          - PASCAL-STRING       Length in first byte.
  405.          - COMPUTATIONAL-3     COBOL Name for PACKED-BCD (abbrev COMP-3)
  406.          - COMPUTATIONAL       COBOL Name for TWOS-COMPLEMENT
  407.          - MASK-PARITY-BIT     Mask bit seven of every byte.
  408.          - RIGHT-JUSTIFY       Right justify a string.
  409.  
  410.       LIST-COMMANDS
  411.  
  412.         List currently active commands.
  413.  
  414.     * OUTPUT-FILE [=] filespec [out-recsize] [file-type] [out-datatype]
  415.  
  416.         Gives the name to be used for the output file.  You may specify an 
  417.         'out_recsize' or let the program figure it out.  The 'file-type' will
  418.         be the same as the input files, unless specifically changed. 
  419.       
  420.         You may also request one of the alternative 'out-datatype' features.
  421.         See "Output File Options" for a detailed explanation of each:
  422.  
  423.            K-OUTPUT, R-OUTPUT, R2-OUTPUT, L-OUTPUT, O-OUTPUT, P-OUTPUT, 
  424.            KR-OUTPUT, KR2-OUTPUT, KL-OUTPUT, KO-OUTPUT and KP-OUTPUT.
  425.  
  426.       PAGE-SIZE [=] line-count
  427.  
  428.         Number of lines per page [WRITE-FILE only].
  429.  
  430.       RETURN-TO-CONSOLE
  431.  
  432.         Accept further commands after executing the GO command.  Default is
  433.         to finish execution and return to the DOS prompt.
  434.  
  435.     * READ-FILES [=|+] filespec[(from-record, to-record)] [, filespec...]
  436.  
  437.         Specify up to 32 files to be read (not sorted) and processed.
  438.  
  439. FASTSORT - General Purpose File Sorting and Handling Utility            Page  7
  440.  
  441.  
  442.  
  443.     Full Command Reference (continued)
  444.     ----------------------------------
  445.  
  446.       PRINT-LEVEL [=] print-level
  447.  
  448.         Regulate number of messages to be displayed. 0 means no messages.
  449.         5 means all possible messages.  The default is 2.
  450.  
  451.       SELECT|EXCLUDE [=|+] compare [[AND|OR] compare ...]
  452.  
  453.          Select or reject records based on logical criteria.  If you code
  454.          multiple SELECT or EXCLUDE records, ALL select statements MUST
  455.          pass the test (evaluate to TRUE) and ALL exclude statements MUST
  456.          fail the test (evaluate to FALSE) for the record to be included.
  457.  
  458.          compare     : field [ < | > | <= | <> | >= | = ] data
  459.               or     : field [ BT | NB ] data, data 
  460.  
  461.          field       : FIELD s-col, e-col [key-type]
  462.  
  463.          data        : FIELD s-col, e-col | constant-value
  464.  
  465.          Notes: BT means BETWEEN and NB means NOT-BETWEEN.
  466.  
  467.     * SORT-FILES [=|+] filespec[(from-record, to-record)] [, filespec...]
  468.  
  469.         Specify up to 32 files to be read and sorted according to the KEY(s)
  470.         specified.  Record numbers start with 1, not 0.  No wildcards.
  471.  
  472.       STABLE [ON|OFF]
  473.  
  474.         Maintain records in original order when keys are equal.
  475.  
  476.       TITLE [=|+] 'string'
  477.  
  478.         Up to 3 titles may be specified. [WRITE-FILE only].  See specs for
  479.         FOOTER, for syntax on %p, %m, %d, %y and %mm.
  480.  
  481.       UNIQUE [ON|OFF]
  482.  
  483.         Drop identical keys. Retain only one of each.
  484.  
  485.       WRITE-FILE [=|+] data, data, ..
  486.  
  487.         Build an output record based on specific fields copied from the input
  488.         records.  Add PADding at will.  For padding, default length is 1 char,
  489.         default pad char is a space.  See also TITLE, FOOTER and PAGE-SIZE.
  490.  
  491.         data       : FIELD s-col, e-col | PAD [[length] char]
  492.       
  493. FASTSORT - General Purpose File Sorting and Handling Utility            Page  8
  494.  
  495.  
  496.  
  497.  
  498.     Files and Records
  499.     -----------------
  500.  
  501.     While FASTSORT can handle files with over 4.2 billion bytes, and can
  502.     handle the same number of records, an artificial limit has been placed 
  503.     on the number of records that can be sorted at one time.  The limit was
  504.     placed in order to speed up the Sort/Merge process.  The actual limit
  505.     depends on the size of the composite KEY sort and can be computed as
  506.     follows:
  507.  
  508.        Max Records = floor(4096/(key_size+5)) * 120000
  509.        
  510.     The following table might give you a better idea of this limitation:
  511.  
  512.        Key Size        Max Records
  513.           1 byte       81,840,000
  514.           4 bytes      54,613,342
  515.          40 bytes      10,922,667
  516.         128 bytes       3,840,000
  517.        1040 bytes         480,000
  518.        2048 bytes         240,000
  519.  
  520.     If you find this limits unacceptable, please write us a letter explaining
  521.     your requirements.  A custom version of this program can be easily made,
  522.     to handle more records or larger keys.
  523.  
  524.     FASTSORT can handle files containing many different types of records:
  525.  
  526.       - In a FIXED record length file, all the records have the same number
  527.         of characters.  The 'max-record-length' parameter of INPUT-ATTRIBUTES
  528.         is the actual record length.
  529.  
  530.       - A CR-DELIMITED file contains lines of text that are terminated by a
  531.         carriage-return, a line-feed or both.  The 'max-record-length' should
  532.         be the maximum number of characters in a record including the line
  533.         delimiters (cr and/or lf).  Thus, this document contains lines with
  534.         no more than 80 characters, and the 'max-record-length' is 82.
  535.         Note that lines with no characters (not even spaces) will not be
  536.         copied to the output file by this program.
  537.  
  538.       - VARIABLE length records are files that have a 2 byte binary number
  539.         in front of each record specifying the number of characters in that
  540.         particular record.  Again, the 'max-record-length' must be 2 higher
  541.         than the longest line to include the binary number in the record.
  542.         Also, when specifying the keys, the first data column in the record
  543.         is column 3 not 1.  If you want to sort by line length, specify a
  544.         2 column INTEGER field on column 1.
  545.  
  546.       - A special kind of FIXED record length file is a RELATIVE file.  This
  547.         file contains fixed length records, but the first six bytes of the
  548.         file contain the 'record-length' and the 'maximum-record-number' in
  549.         the file.  A RELATIVE file can hold a maximum of 64K records, and any
  550.         record that consists entirely of binary zeroes is considered to be
  551.         empty and is not copied to the output file.
  552. FASTSORT - General Purpose File Sorting and Handling Utility            Page  9
  553.  
  554.  
  555.  
  556.  
  557.     Files and Records (continued)
  558.     -----------------------------
  559.  
  560.     FASTSORT can handle records up to 64K bytes long.  This maximum length
  561.     includes the special delimiters in a CR-DELIMITED file and the two byte
  562.     record length in variable length files
  563.  
  564.     There are many special types of files that contain fixed length records
  565.     but have a header in front of them.  If you know the size of this header,
  566.     FASTSORT will correctly handle the file.
  567.  
  568.     All DBASE III .DBF files contain a header with information about the fields
  569.     in the file.  The size of the header can be computed as follows:
  570.  
  571.        header-size = (number-of-fields + 1) * 32 + 1.
  572.  
  573.     The length of the records is reported by DBASE III by the command DISPLAY
  574.     STRUCTURE.  Each record has 1 additional byte up front.  This byte will
  575.     be blank for valid records and a '*' for deleted records.  You can use the
  576.     SELECT/EXCLUDE feature to drop deleted record from processing.
  577.  
  578.     The DBASE-III file type will take care of calculating the header for you,
  579.     but example 1 does it the hard way just to show you how to handle headers.
  580.  
  581.     WARNING: The first record on a file is always record 1 not record 0.
  582.  
  583.     WARNING: The first column on a record is always column 1 not column 0.
  584.  
  585.  
  586.     Super-Sort (tm) Compatibility
  587.     -----------------------------
  588.  
  589.     The command interface to FASTSORT is compatible with the command interface
  590.     to Super Sort version 1.6 of MicroPro International.  This product has many
  591.     features not found in Super Sort, and does not implement some of the more
  592.     obsolete features in Super Sort.  This product is not intended to be 100%
  593.     compatible with Super Sort.
  594.  
  595. FASTSORT - General Purpose File Sorting and Handling Utility            Page 10
  596.  
  597.  
  598.  
  599.     Fields
  600.     ------
  601.  
  602.     You specify the location of a field on a record by providing the starting
  603.     and ending columns on the record.
  604.  
  605.     By default, fields are assumed to contain ASCII information and are sorted
  606.     in ASCII code order (roughly 0,1,2..9,A,B,C,..Z,a,b,c,..z).
  607.  
  608.     You may also specify a field TYPE as any of the following:
  609.  
  610.       - UPPER-CASE
  611.  
  612.         Makes no distinction between upper and lower case letters.
  613.  
  614.       - LEXICAL-ORDER
  615.  
  616.         This is the order that most dictionaries use.  Lower case letters will
  617.         follow the equivalent upper case letter.
  618.         In general, the sort order is 0,1,...9,A,a,B,b,C,c...Z,z
  619.  
  620.       - EBCDIC
  621.  
  622.         A field that contains ASCII text will be sorted in EBCDIC order.
  623.         This order is roughly A,B,C,...Z,a,b,c,...z,0,1,...9.  Please examine
  624.         the COLLATING SEQUENCE TABLE in the appendix.
  625.  
  626.       - ALTSEQ
  627.  
  628.         The user may specify a special COLLATING-SEQUENCE to be used for this
  629.         field.  See syntax for COLLATING-SEQUENCE command for more.
  630.  
  631.       - NUMERIC-ASCII
  632.  
  633.         The field contains an ASCII representation of a number. This field will
  634.         be sorted according to it's NUMERIC value.  Up to 14 significant digits
  635.         are used.  Note that NUMERIC-ASCII is only for numbers stored as TEXT,
  636.         other field types are available for binary numbers.
  637.  
  638.       - LO-HI
  639.  
  640.         The bytes in this field are stored in reverse order.  For example, a
  641.         field containing the value "abcdef" would be stored as "fedcba".  
  642.         This is normally the way binary integers are stored in IBM-PC and
  643.         compatible microcomputers.
  644.  
  645.       - PACKED-BCD or COMPUTATIONAL-3
  646.  
  647.         This is a binary representation of a number.  Each byte can hold two
  648.         decimal digits.  The right-most byte may contain a sign in the lower
  649.         half of it.
  650.  
  651. FASTSORT - General Purpose File Sorting and Handling Utility            Page 11
  652.  
  653.  
  654.  
  655.  
  656.     Fields (continued)
  657.     ------------------
  658.  
  659.       - FLOATING-POINT
  660.  
  661.         This field contains a 4 or 8 byte number in MicroSoft floating point
  662.         format.
  663.  
  664.       - TWOS-COMPLEMENT or COMPUTATIONAL
  665.  
  666.         This is a binary representation of a fixed point number.  Please note
  667.         that the field is assumed to be in HI-LO order.  On IBM-PC and other
  668.         microcomputers using the Intel 8086 family of microprocessors, binary
  669.         integers are stored in LO-HI (reverse) order.  You may specify both
  670.         TWOS-COMPLEMENT and LO-HI or just use the INTEGER type below.
  671.  
  672.       - INTEGER
  673.  
  674.         This field contains a binary number, in 2's complement format with the
  675.         bytes in reverse order (LO-HI).  It is the equivalent of specifying
  676.         TWOS-COMPLEMENT and LO-HI for the same field.  This field is normally
  677.         2 or 4 bytes long, but no restrictions are placed by the program.
  678.  
  679.       - ZERO-DELIMITED
  680.  
  681.         This field contains a TEXT string that may not be as long as the field.
  682.         The string is terminated by a binary ZERO.  Information found after the
  683.         binary zero is ignored.  This is the format normally used for strings
  684.         in the C programming language.
  685.  
  686.       - PASCAL-STRING
  687.  
  688.         This field contains a TEXT string whose length is specified by the first
  689.         byte of the same.  No attempt is made to verify that the length fits the
  690.         field.  This format is used in the Pascal programming language.
  691.  
  692.       - RIGHT-JUSTIFY
  693.  
  694.         This option applies only to PASCAL-STRINGs and ZERO-DELIMITED strings.
  695.         The string will be padded to the field length with BLANKs before any
  696.         two fields are compared.
  697.  
  698.       - MASK-PARITY-BIT
  699.  
  700.         Bit seven of each byte in this field will be turned off (set to 0).
  701.  
  702. FASTSORT - General Purpose File Sorting and Handling Utility            Page 12
  703.  
  704.  
  705.  
  706.  
  707.     Output File Options
  708.     -------------------
  709.  
  710.  
  711.     Normally, the output file contains the rearranged input records.  This is
  712.     referred to as FULL RECORD OUTPUT.  In addition, there are 4 special types
  713.     of output = keys, record numbers, segment pointers, and byte offsets that
  714.     can be combined to create 11 types of files useful for many different
  715.     purposes.
  716.  
  717.  
  718.     - K-OUTPUT
  719.  
  720.       The output file will contain the sorted keys only.  Add an output type
  721.       of CR-DELIMITED to be able to print and/or edit the output file. You
  722.       may find this file useful as an index file that can be binary searched.
  723.  
  724.       Please note that the KEYS in this file have been transformed according
  725.       to the key-type specifications and may not be in a usable format.  For
  726.       example, a DESCENDING specification will have XOR (exclusive or) the
  727.       key with hex 'FF', an UPPER-CASE key will have all the characters in
  728.       upper case and a NUMERIC-ASCII key will be stored in a 9 byte packed
  729.       BCD floating point format.  For more information on the transformation
  730.       process please see appendix E "Key Transformations".
  731.  
  732.  
  733.    -  L-OUTPUT
  734.  
  735.       The output file will contain only the record numbers, (remember that the
  736.       first record is 1 not 0), arranged according to the keys you specified.
  737.       This type of file is useful as a fast, compact index into a big data
  738.       file.  Your program may use this file to access the data file in many
  739.       different sorted orders without having to have many copies of the file
  740.       on the disk.
  741.  
  742.       FIXED, VARIABLE and RELATIVE files will contain 4 byte records each
  743.       holding a single record number in TWOS-COMPLEMENT, LO-HI format.  For
  744.       multi-file input, a single byte file number is prefixed to the record
  745.       making it a 5 byte record.
  746.  
  747.       For CR-DELIMITED files, the record numbers will be stored as ASCII text
  748.       using 12 characters (+2 for the carriage return and the line feed).
  749.       This file can be accessed as fixed length (14 bytes) if you want to.
  750.       The record numbers are padded with "0" (Ex: "0000034653").  For multi-
  751.       file input, a 3 digit file number is prefixed (Ex: "002,0000034653")
  752.       and a comma (,) separates the two numbers.  
  753.  
  754. FASTSORT - General Purpose File Sorting and Handling Utility            Page 13
  755.  
  756.  
  757.  
  758.  
  759.     Output File Options (continued)
  760.     -------------------------------
  761.  
  762.  
  763.    -  O-OUTPUT
  764.  
  765.       The output file will contain byte offsets into the file (the first byte
  766.       in the file being byte 0).  This is very useful to create an index into
  767.       a VARIABLE or CR-DELIMITED file.  Your program can perform seeks to the
  768.       exact position where the record you want starts.
  769.  
  770.       FIXED, VARIABLE and RELATIVE files will contain 4 byte records each
  771.       holding an offset in TWOS-COMPLEMENT, LO-HI format.  For multi-file
  772.       input, a single byte file number is prefixed to the record making it
  773.       a 5 byte record.
  774.  
  775.       For CR-DELIMITED files, the offsets will be stored as ASCII text using
  776.       using 12 characters (+2 for the carriage return and the line feed).
  777.       This file can be accessed as fixed length (14 bytes) if you want to.
  778.  
  779.  
  780.    -  R-OUTPUT (Super Sort Compatible)
  781.  
  782.       This is a 2 byte version of L-OUTPUT with the added quirk of a single
  783.       byte binary zero in front of it.  This is a Super Sort compatible file
  784.       and is not expected to be useful to non-Super Sort fans.
  785.  
  786.       Binary records will be 3 bytes long (4 for multi-file input).
  787.       Example: [0001A7] or [00030180]
  788.  
  789.       CR-DELIMITED records have 6 character record numbers. If you don't
  790.       plan to have more than 999999 records, this format might be preferable
  791.       to L-OUTPUT (only for CR-DELIMITED output).
  792.  
  793.  
  794.    -  R2-OUTPUT (Super Sort Compatible)
  795.  
  796.       This is the same as above, but uses a 4 byte integer thus allowing more
  797.       than 4 billion records (2^32 - 1 to be exact).  Records contain the
  798.       Super Sort specified binary zero.
  799.  
  800.       The CR-DELIMITED version of R2-OUTPUT is exactly equivalent to the
  801.       CR-DELIMITED version of L-OUTPUT.
  802.  
  803. FASTSORT - General Purpose File Sorting and Handling Utility            Page 14
  804.  
  805.  
  806.  
  807.  
  808.     Output File Options (continued)
  809.     -------------------------------
  810.  
  811.  
  812.    -  P-OUTPUT (Super Sort Compatible)
  813.  
  814.       The input file(s) are divided into blocks of 128 bytes each.  A pair of
  815.       numbers (block,offset) are calculated for each record.  The first block
  816.       is block number 1 and the first byte in each block is byte 1.
  817.  
  818.       For FIXED, VARIABLE and RELATIVE output, the numbers will be stored in
  819.       TWOS-COMPLEMENT, LO-HI format, each using 2 bytes.  A file number will
  820.       be prefixed for multi-file input.
  821.  
  822.       For CR-DELIMITED output, each number is stored in 6 character, zero-
  823.       filled format, with a 3 character file number for multi-file input.
  824.       Example "003423,000028" or "004,004320,000121".
  825.  
  826.  
  827.    -  KL-, KO-, KR-, KR2- and KP-OUTPUT.
  828.  
  829.       To make the previous formats even more useful, an extension of the
  830.       K-OUTPUT option allows you to get the record number, byte offset or
  831.       whatever is right after the KEY in a combined Kx-OUTPUT option.  This
  832.       is perhaps the most useful output option because it allows you to create
  833.       sorted KEY files that can be binary searched to locate a particular key
  834.       and then allows you to access the original data file to retrieve the full
  835.       record.  A powerful relational data base can be easily written using the
  836.       Kx-OUTPUT options as the heart of it's indexing capabilities.
  837.  
  838.       Please see the appendix "Examples and Tips" for additional information.
  839.  
  840. FASTSORT - General Purpose File Sorting and Handling Utility            Page 15
  841.  
  842.  
  843.  
  844.  
  845.     Key Transformations
  846.     -------------------
  847.  
  848.     When FASTSORT reads the input records, it creates a single KEY that can
  849.     be easily sorted.  This key contains the information found on each of the
  850.     individual fields specified in one or more KEY commands.  Each field is
  851.     individually transformed according to the following rules.  When using
  852.     the K-OUTPUT or Kx-OUTPUT options, certain key attributes will totally
  853.     alter the key information and special approaches may be needed if you
  854.     have to have an unmodified key in your output file.  Please see example
  855.     number 3 for an easy way to accomplish this task.
  856.  
  857.       - DESCENDING
  858.  
  859.         The field is one's complemented after all necessary transformations
  860.         have taken place.
  861.  
  862.       - UPPER-CASE
  863.  
  864.         All lower case characters in the field are translated to upper case.
  865.  
  866.       - LEXICAL-ORDER, EBCDIC and ALTSEQ
  867.  
  868.         Every character on this field is transformed into a sequence code
  869.         from 0 through 255.  This will most likely make the field totally
  870.         unreadable.  In the case of EBCDIC, the resultant field will be the
  871.         actual EBCDIC character equivalent to the original ASCII character.
  872.  
  873.       - NUMERIC-ASCII
  874.  
  875.         The number will be translated to an internal 9 byte sortable floating
  876.         point representation.  The number is in excess 513, with 14 decimal
  877.         digits of precision.
  878.  
  879.         + Bit 7 of Byte 0 is ON (1).
  880.         + Bits 6 through 0 and byte 1 contain the excess 513 exponent.
  881.         + Bytes 2-6 contain the significant digits, 4 bits each. (Zero Padded)
  882.         + The whole field is one's complemented if the number is negative.
  883.  
  884.       - LO-HI
  885.  
  886.         The bytes in this field are stored in reverse order.
  887.  
  888.       - PACKED-BCD or COMPUTATIONAL-3
  889.  
  890.         A hex 'FF' byte is prefixed to the field.  If signed, the field is
  891.         shifted right 4 bits to delete the sign.  If the sign was negative
  892.         the whole field is one's complemented (including the added byte).
  893.  
  894. FASTSORT - General Purpose File Sorting and Handling Utility            Page 16
  895.  
  896.  
  897.  
  898.  
  899.     Key Transformations (continued)
  900.     -------------------------------
  901.  
  902.       - FLOATING-POINT
  903.  
  904.         The bytes in the field are reversed.  If byte 0 is 0, all bytes are
  905.         set to 0 otherwise:
  906.  
  907.         + set bit 7 of byte 1 to bit 0 of byte 0.
  908.         + shift byte 0 right one bit position.
  909.         + set bit 7 of byte 0 to 1.
  910.         + if bit 7 of byte 0 was 1 before the first step (negative number),
  911.           one's complement all bytes.
  912.  
  913.       - TWOS-COMPLEMENT or COMPUTATIONAL
  914.  
  915.         Complement bit 7 of byte 0.
  916.  
  917.       - INTEGER
  918.  
  919.         Reverse the order of the bytes.  Complement bit 7 of byte 0.
  920.  
  921.       - ZERO-DELIMITED
  922.  
  923.         Trailing Spaces are added to the field.
  924.  
  925.       - PASCAL-STRING
  926.  
  927.         Drop the length field.  Add trailing spaces to the field.
  928.  
  929.       - RIGHT-JUSTIFY
  930.  
  931.         For PASCAL-STRING and ZERO-DELIMITED fields, leading spaces will be
  932.         added instead of trailing ones.
  933.  
  934.       - MASK-PARITY-BIT
  935.  
  936.         Bit seven of each byte in this field will be turned off (set to 0).
  937.  
  938.  
  939. FASTSORT - General Purpose File Sorting and Handling Utility            Page 17
  940.  
  941.  
  942.     Examples and Tips
  943.     -----------------
  944.  
  945.     The following examples are meant to show the wide variety of needs that
  946.     can be met by FASTSORT.  Your feed back on this and any other section
  947.     of this manual will be appreciated.
  948.  
  949.     Example 1.
  950.  
  951.     You need to create a company Phone List to post on the office's bulletin
  952.     board.  The information can be found in the DBASE III employee management
  953.     system, but you need to edit the information with your word processor.
  954.  
  955.     You find that the employee file has 800 characters per record, the phone
  956.     number is stored in columns 345 through 355 and the employee's name is
  957.     in columns 546 through 582.  There are 420 fields in the employee file.
  958.  
  959.       INPUT   = 800, DBASE
  960.       SORT    = EMPLOYEE.DBF
  961.       OUTPUT  = PHONE.LST K-OUTPUT CR-DEL  /* CR to print the list
  962.       EXCLUDE = FIELD 1, 1 EQ '*'          /* Drop empty records
  963.       KEY     = 546, 582 ASC               /* The name first
  964.       KEY     + 345, 355 ASC               /* The phone number last
  965.       GO                                   /* Sort it
  966.  
  967.     Example 2.
  968.  
  969.     You need a quick list of all your clients, but the only place to get
  970.     it from is from the SHIPPING records.  The shipping file contains over
  971.     40 thousand records, as most clients place orders several times a day.
  972.  
  973.       INPUT 520 FIXED
  974.       SORT SHIPPING.LOG
  975.       OUTPUT CLIENTS.LST K-OUTPUT CR-DELIMITED
  976.       UNIQUE                       /* No repeat keys.
  977.       KEY 32, 51 UPPER-CASE ASC    /* Translate names to UPCASE
  978.       GO
  979.  
  980.    Example 3.
  981.  
  982.    You want the above list of clients, but you MUST have it in descending
  983.    order.  Remember that the DESCENDING attribute transforms the key data.
  984.  
  985.       INPUT 520 FIXED
  986.       SORT SHIPPING.LOG
  987.       OUTPUT CLIENTS.LST K-OUTPUT
  988.       UNIQUE                             /* No repeat keys.
  989.       KEY 32, 51 UPPER-CASE ASC
  990.       RETURN-TO-CONSOLE                  /* Sort, but I'm not finished yet.
  991.       GO
  992.       CANCEL                             /* Erase all of the above.
  993.       INPUT 20 FIXED                     /* A 20 character record
  994.       SORT CLIENTS.LST                   /* Read output from previous sort
  995.       OUTPUT CLIENTS.LST 22 CR-DELIMITED /* Create a CR-DEL file
  996.       KEY 1 20 DESC
  997.       GO ; BYE                           /* Sort and  Good Bye */
  998.  
  999. FASTSORT - General Purpose File Sorting and Handling Utility            Page 18
  1000.  
  1001.  
  1002.     Examples and Tips (continued)
  1003.     -----------------------------
  1004.  
  1005.     Example 4.
  1006.  
  1007.     You need to sort and print a file in 3 different orders.
  1008.  
  1009.        INPUT 80 CR-DEL
  1010.        SORT  NAMES.LST
  1011.        OUTPUT PRN            /* Write to the printer.. full records
  1012.        RETURN-TO-CONSOLE
  1013.        KEY =  1, 20          /* Sorted by NAME
  1014.        GO
  1015.        KEY = 25, 38          /* Sorted by PHONE
  1016.        GO
  1017.        KEY = 40, 40, 1, 20   /* By SEX then by NAME
  1018.        GO
  1019.        BYE                   /* Needed due to RETURN-TO-CONSOLE
  1020.  
  1021.  
  1022.     Example 5.
  1023.  
  1024.     You need to print a directory of employees, but nicer than example #1.
  1025.  
  1026.       INPUT   = 171, DBASE
  1027.       SORT    = EMPLOYEE.DBF
  1028.       OUTPUT  = PHONE.LST CR-DEL 80
  1029.       EXCLUDE = FIELD 1, 1 EQ '*'
  1030.       KEY     = 6, 35 ASC
  1031.       TITLE   = 'Name                 Address              Phone//%mm %d, 19%y'
  1032.       TITLE   + '-------------------- -------------------- --------------'
  1033.       WRITE   = F 6, 25
  1034.       WRITE   + PAD, FIELD 36, 55, PAD 
  1035.       WRITE   + PAD '(', FIELD 96, 98, PAD ')'
  1036.       WRITE   + PAD, FIELD 99, 101
  1037.       WRITE   + PAD '-', FIELD 102, 105
  1038.       FOOTER  = '/- %p -/'
  1039.       GO    
  1040.  
  1041. FASTSORT - General Purpose File Sorting and Handling Utility            Page 19
  1042.  
  1043.  
  1044.  
  1045.     What the future holds
  1046.     ---------------------
  1047.  
  1048.     We are currently working on some enhancements that will truly make this
  1049.     product an indispensable tool.  Suggestions are welcomed.  Any suggestion
  1050.     that is adopted and implemented will be acknowledged on the documentation
  1051.     for the newer releases.  A free update will also be sent to the first
  1052.     person to suggest that particular enhancement.
  1053.  
  1054.     Expanded Reporting Capabilities
  1055.     -------------------------------
  1056.  
  1057.     In report writing, the ability to specify break levels in the sort key
  1058.     and to keep totals:
  1059.  
  1060.     BREAK    [=|+] key number, key number..
  1061.  
  1062.     TOTAL    [=|+] FIELD s-col, e-col [numeric-field-type]
  1063.  
  1064.     Finally, adding a 'input-data-type' field to the WRITE-FILE command will
  1065.     allow you to create reports from binary files. (the field would be trans-
  1066.     formed into an ASCII field).
  1067.  
  1068.  
  1069.     Extended and/or Expanded Memory Support
  1070.     ---------------------------------------
  1071.  
  1072.     We will be looking to support extended and/or expanded memory for super-
  1073.     fast sorting of BIG files.  It really depends on what our users tell us
  1074.     about their sorting needs.
  1075.  
  1076.  
  1077. FASTSORT - General Purpose File Sorting and Handling Utility            Page 20
  1078.  
  1079.  
  1080.  
  1081.     The EZSORT interface
  1082.     --------------------
  1083.  
  1084.     Recognizing that sometimes you need to do a one-time SORT, or that you may
  1085.     not have the time to memorize the command syntax for FASTSORT, we have made
  1086.     the EZSORT interface for easy, fast, no-frills sorting.
  1087.  
  1088.     This program will display a screen where you may type the input and output
  1089.     file names, types, lengths, as well as the keys, titles and other options.
  1090.  
  1091.     Note that if you enter a TITLE or a FOOTER, the KEY fields will be copied
  1092.     into WRITE-FILE commands, separated by spaces.  This feature allows you to
  1093.     create simple reports from the EZSORT interface without having to enter
  1094.     the same information twice.  You can always edit the resulting command 
  1095.     file to modify the actual report generated.
  1096.  
  1097.     Extensive context sensitive help will help new users get up and running in
  1098.     a jiffy.  The interface can generate command files (xx.CF) or can call the
  1099.     FSORT.EXE program directly.  The CF files generated can be edited by the
  1100.     user to do minor adjustments, without having to remember the exact syntax
  1101.     of the standard commands.
  1102.  
  1103.     To use the interface, run EZSORT from the dos prompt:
  1104.  
  1105.       C> EZSORT<enter>
  1106.  
  1107.     Fill in the blanks and press:
  1108.  
  1109.       F1 - For help on the specific field the cursor is on.
  1110.  
  1111.       F2 - To create a command file (EZSORT.CF) and execute the FSORT program
  1112.            immediately.  After the sort is finished, control will return to
  1113.            DOS, not EZSORT.
  1114.  
  1115.       F6 - To create a command file with a specific name.  The EZSORT 
  1116.            interface will ask you for the name after  you press F6.
  1117.     
  1118.       F10- To exit the EZSORT program.
  1119.  
  1120.     Note that the information you have typed will not be retained.
  1121.  
  1122.     If you would like to see the EZSORT interface extended, please write us a
  1123.     letter telling us about it.
  1124.  
  1125.  
  1126. FastSort - Version 1.60 - General Purpose File Sorting and Handling Utility
  1127.  
  1128.  
  1129.  
  1130.     Mail registration form to: DC Software, 6705 Laramie Dr., Plano TX 75023
  1131.     -------------------------
  1132.  
  1133.     Your Mailing Address
  1134.     --------------------
  1135.  
  1136.     Name  : ______________________________________________
  1137.  
  1138.     Title : ______________________________________________ (optional)
  1139.  
  1140.     Street: ______________________________________________
  1141.  
  1142.     City  : _______________________ State __ Zip _____
  1143.  
  1144.  
  1145.     Type of Registration
  1146.     --------------------
  1147.  
  1148.     [ ] Mailing List Only. $10 fee.
  1149.  
  1150.     [ ] Full Registration. $25 fee.
  1151.  
  1152.     [ ] Multiple Copies.  $25 fee (1st copy).  $10 per additional copy.
  1153.  
  1154.     [ ] Unlimited Copies (Per Site).  $100 fee.
  1155.  
  1156.     [ ] Change of Address only.  No fee.
  1157.  
  1158.  
  1159.     System Configuration (optional)
  1160.     -------------------------------                                   
  1161.  
  1162.     CPU Type: ________ Speed: ________ Hard Disk _____________________
  1163.  
  1164.     DOS Version: ___.___   Graphics: ____________ Printer: ___________
  1165.  
  1166.     Where did you get the program from? ______________________________
  1167.  
  1168.  
  1169.     Your Comments
  1170.     -------------
  1171.  
  1172.     __________________________________________________________________
  1173.     __________________________________________________________________
  1174.     __________________________________________________________________
  1175.     __________________________________________________________________
  1176.     __________________________________________________________________
  1177.     __________________________________________________________________
  1178.     __________________________________________________________________
  1179.     __________________________________________________________________
  1180.  
  1181.  
  1182.          ----------------end-of-author's-documentation---------------
  1183.  
  1184.                          Software Library Information:
  1185.  
  1186.                     This disk copy provided as a service of
  1187.  
  1188.                            Public (software) Library
  1189.  
  1190.          We are not the authors of this program, nor are we associated
  1191.          with the author in any way other than as a distributor of the
  1192.          program in accordance with the author's terms of distribution.
  1193.  
  1194.          Please direct shareware payments and specific questions about
  1195.          this program to the author of the program, whose name appears
  1196.          elsewhere in  this documentation. If you have trouble getting
  1197.          in touch with the author,  we will do whatever we can to help
  1198.          you with your questions. All programs have been tested and do
  1199.          run.  To report problems,  please use the form that is in the
  1200.          file PROBLEM.DOC on many of our disks or in other written for-
  1201.          mat with screen printouts, if possible.  PsL cannot debug pro-
  1202.          programs over the telephone, though we can answer questions.
  1203.  
  1204.          Disks in the PsL are updated  monthly,  so if you did not get
  1205.          this disk directly from the PsL, you should be aware that the
  1206.          files in this set may no longer be the current versions. Also,
  1207.          if you got this disk from another vendor and are having prob-
  1208.          lems,  be aware that  some files may have become corrupted or
  1209.          lost by that vendor. Get a current, working disk from PsL.
  1210.  
  1211.          For a copy of the latest monthly software library newsletter
  1212.          and a list of the 3,000+ disks in the library, call or write
  1213.  
  1214.                            Public (software) Library
  1215.                                P.O.Box 35705 - F
  1216.                             Houston, TX 77235-5705
  1217.  
  1218.                                 1-800-2424-PSL
  1219.                              MC/Visa/AmEx/Discover
  1220.  
  1221.                           Outside of U.S. or in Texas
  1222.                           or for general information,
  1223.                               Call 1-713-524-6394
  1224.  
  1225.                           PsL also has an outstanding
  1226.                           catalog for the Macintosh.
  1227.  
  1228.